mod pipe1;
mod pipe2;

#[allow(unused_macros)]
macro_rules! map {
    ($( $key:expr => $value:expr ),*) => {{
        let mut ret = std::collections::HashMap::new();
        $(ret.insert($key, $value);)*
        ret
    }};
}

pub fn times(a: i32, b: i32, c: i32) -> i32 {
    a * b * c
}

pub fn id<T>(n: T) -> T {
    n
}

macro_rules! test_tt {
    ($($tt:tt)*) => {
        $(println!(stringify!($tt));)*
    };
}

#[test]
fn test_tt() {
    test_tt!(a + b + c f(hhh));
}
